package fr.afcepf.al22.qualite.business;

import java.util.List;

import fr.afcepf.al22.qualite.entity.Personne;

/**
 * Classe contenant les règles de gestion liées à l'entité {@link Personne}.
 * 
 * @author Stagiaire
 * 
 */
public interface IBusinessPersonne {
    /**
     * Méthode permettant l'ajout d'une {@link Personne} dans la base.
     * @param pers La {@link Personne} à ajouter.
     * @return
     * <ul>
     * <li>Une {@link Personne} avec sa clef primaire non nulle si l'ajout à fonctionné.</li>
     * <li>Une {@link Personne} avec sa clef primaire nulle si violation de contrainte dans la data.</li>
     * <li>Une {@link Personne} avec sa clef primaire nulle si la mail existe déjà en base.</li>
     * </ul>
     */
    Personne add(Personne pers);
    /**
     * Permet de rechercher des {@link Personne} dont le {@link Personne#getMail()}
     * est identique au 'mail' transmis en argument.
     * @param nom le nom recherché.
     * @return
     * <ul>
     * <li>Une liste remplie de {@link Personne} si la recherche donne un resultat.</li>
     * <li>Une liste vide si pas de resultats</li>
     * </ul>
     */
    List<Personne> find(String nom);
}
